#!/usr/bin/env node
// node cli 应用入口文件必须要有这样的文件头
// 如果是linux 或者 macos系统下还需要修改此文件的读写权限为755 
// 具体操作 chmod 755 cli.js

// 脚手架工作原理
// 1、通过命令行交互询问用户问题
// 2、根据用户回答问题的结果生成文件
const path = require("path")
const fs = require("fs")
const ejs = require("ejs")
const inquirer = require("inquirer")
inquirer.prompt([{
  type: 'input',
  name: 'name',
  message: 'Project name?'
}]).then(anwsers => {
  // 根据用户回答问题的结果生成文件

  // 模板目录是templates
  const tmpDir = path.join(__dirname, 'templates')
  // 目标目录
  const destDir = process.cwd()

  // 蒋模板下的文件你全部换到目标目录
  fs.readdir(tmpDir, (err, files) => {
    if (err) throw err
    files.forEach(file => {
      //  通过模板引擎渲染文件
      ejs.renderFile(path.join(tmpDir, file), anwsers, (err, result) => {
        if (err) throw err
        fs.writeFileSync(path.join(destDir, file), result)
      })
    })
  })
})
